home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 August: Tool Chest / Apple_Developer_CD_Series_August_1997_Tool_Chest.iso / Tool Chest / Interfaces&Libraries / 3.0 Interfaces ReadMe next >
Encoding:
Text File  |  1997-06-23  |  5.6 KB  |  46 lines  |  [ttro/ttxt]

  1.   
  2.                                                    
  3.                                                              Universal Interfaces  3.0 
  4.  
  5.  
  6. The goal of the 3.0 Universal Interfaces is to integrate all the latest Apple MacOS headers into one release.  This release will have a consistent style that, among other things, allows the interface files to work cross-platform.  For example, the CPU, OS, and runtime have all been factored into separate conditionals (e.g. TARGET_CPU_PPC, TARGET_OS_MAC, and TARGET_RT_MAC_CFM).  Please see the comments in ConditionalMacros.h for more details. 
  7.  
  8. Δ Note: ETO #21 Pre-Release and the 1996 WWDC CD contained 3.0d4 Universal Interfaces.  Those interfaces were for Copland and System 7 development.  The 3.0 interfaces, available here, have had all the Copland-only declarations removed. Do not attempt to mix and match interfaces from 3.0d4 with later releases.
  9.  
  10. Δ Note: In the past, the main release vehicle for the Universal Interfaces was with MPW on the E.T.O. series CD's.  In that environment, the interface files and libraries were merged in with any MPW specific interface files and libraries.  Beginning with the 3.0 Universal Interfaces, the MPW specific files are in a separate folder.  To install into an existing MPW environment, use the MPW_Install script.
  11.  
  12. CIncludes
  13. The headers have been updated to remove more pascal artifacts. For example: uses of Ptr have been changed to void*, appropriate integers have been made unsigned, const has been added to appropriate parameters. 
  14.  
  15. RIncludes
  16. The Rez interface files have been overhauled and subdivided by toolbox manager and have a new standard for versioning template changes.  The new subdivision, for example, puts the rez template for 'DLOG' is now in Dialogs.r instead of Types.r. For short term compatibility, Types.r has been changed to auto-include the other new .r files so that your sources which only includes Types.r will continue to build, but you should migrate your Rez sources to #include the appropriate .r file directly.   All rez templates that have changed over time now have a standard style of conditionalizing which allows access to any of the template versions on a type by type basis.  For example, you can #define WIND_RezTemplateVersion to be 1 before your #include of MacWindows.r to use the 'WIND' resource template that has the window positioning information at the end.
  17.  
  18. AIncludes
  19. The Asm interface files are now "universal". They have the same file, structure, and constant names as C.  They are designed to work with Asm and PPCAsm.  If your source code was created using the old 68k includes (e.g. SysEqu.a, ToolEqu.a) you may have to do a significant amount of work to get you sources assembling with these new interfaces.  If you do choose to do the conversion, read the file "Universal AIncludes ReadMe" for tips on making easing the conversation process.
  20.  
  21. Miscellaneous Interface Notes
  22. • double_t and float_t have been moved from Types.h to fp.h.  If you use these types, you should #include fp.h to insure your source code compiles under both 2.x and 3.0 Interfaces.
  23.  
  24. • Windows and Memory (for .h, .p, .a, and .r) have been renamed to MacWindow and MacMemory. This was done to make the files interoperable with the headers from other platforms.  We will continue to ship a Windows.h and Memory.h (which simply #include the new name) to support existing Mac OS source code, but cross-platform developers may wish to remove those files.
  25.  
  26. • The fixed font ID constants have been renamed to avoid conflicts with C++ STL.  (e.g. times is now kFontIDTimes).  Relying on fixed font ID's has always been slightly risky.  It is better to use GetFNum() to look up a font ID by name.
  27.  
  28. • All sound related interfaces have moved to Sound.h.  The only change that is not backward compatible is that SysBeep() was previously in OSUtils.h, but OSUtils.h cannot auto-include Sound.h because that would cause a circular include.  You will need to add a #include <Sound.h> where ever SysBeep() is used in order for your sources to work with both 2.x and 3.0 Interfaces.
  29.  
  30. • In OSUtils.h, Delay() has been changed to use unsigned longs instead of longs.  This change will be transparent to C, but C++ compilers will complain.  You should change your source code to use unsigned longs to Delay(). 
  31.  
  32. • UInt64 and SInt64 have been changed to be implemented as long long on compilers that support that data type. If you use the functions/macros in Math64.h, your source code will compile regardless of whether the compiler supports long long.  The types wide and UnsignedWide will remain as structs.  If your source code assumes wide and SInt64 are the same thing, you should change to use the macros in Math64.h for conversion.  
  33.  
  34. • The conditional SystemSevenOrLater has been removed.  Previously, this was used to control whether Gestalt(), HOpenResFile(), and FindFolder() were called as an A-Trap or via glue code in Interface.o which first checked that the trap was implemented.  Since these functions were all implemented in System 7, using the glue code only mattered if the generated code was run on a System 6 or earlier Macintosh.  If you plan to use the 3.0 interfaces, and you are creating classic 68K code to run on a pre-system 7 machine, you should check if the trap is implemented for Gestalt, FindFolder, and HOpenResFile before calling them.
  35.  
  36. StubLibraries
  37. • GXPrinting is no longer supported as of Mac OS 8.  Therefore all GX printing routines have been removed from QuickDrawGXLib and moved into a new separate stub library GXPrintingLib.
  38.  
  39. • The AppleGuideLib stub library now supports CFM 68K.
  40.  
  41. • The DragLib stub library now supports the routines for translucent dragging.
  42.  
  43.  
  44.  
  45.  
  46.